From: Georges Basile Stavracas Neto Date: Sat, 29 Jun 2019 17:09:32 +0000 (-0300) Subject: allView: Scale in when moving icons from folders X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~839^2^2~22 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=fd19906c640f206312e8946d877fb844670d2bab;p=gnome-shell.git allView: Scale in when moving icons from folders App icons inside folders are already animated when the folder is opened, but moving an app icon from a folder doesn't, making the transition abrupt. Fortunately, it's easy to detect icons that were previously hidden but are not anymore. Add an animation to these icons when showing. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/664 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index e283125d6..f6bab8bbb 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -38,6 +38,9 @@ var VIEWS_SWITCH_ANIMATION_DELAY = 100; var PAGE_SWITCH_TIME = 300; +var APP_ICON_SCALE_IN_TIME = 500; +var APP_ICON_SCALE_IN_DELAY = 700; + const SWITCHEROO_BUS_NAME = 'net.hadess.SwitcherooControl'; const SWITCHEROO_OBJECT_PATH = '/net/hadess/SwitcherooControl'; @@ -358,6 +361,8 @@ var AllView = class AllView extends BaseAppView { } _refilterApps() { + let filteredApps = this._allItems.filter(icon => !icon.actor.visible); + this._allItems.forEach(icon => { if (icon instanceof AppIcon) icon.actor.visible = true; @@ -370,6 +375,12 @@ var AllView = class AllView extends BaseAppView { appIcon.actor.visible = false; }); }); + + // Scale in app icons that weren't visible, but now are + filteredApps.filter(icon => icon.actor.visible).forEach(icon => { + if (icon instanceof AppIcon) + icon.scaleIn(); + }); } getAppInfos() { @@ -1711,6 +1722,7 @@ var AppIcon = class AppIcon { this.name = app.get_name(); this.actor = new St.Button({ style_class: 'app-well-app', + pivot_point: new Clutter.Point({ x: 0.5, y: 0.5 }), reactive: true, button_mask: St.ButtonMask.ONE | St.ButtonMask.TWO, can_focus: true, @@ -1927,6 +1939,19 @@ var AppIcon = class AppIcon { this.icon.animateZoomOut(); } + scaleIn() { + this.actor.scale_x = 0; + this.actor.scale_y = 0; + + this.actor.ease({ + scale_x: 1, + scale_y: 1, + time: APP_ICON_SCALE_IN_TIME, + delay: APP_ICON_SCALE_IN_DELAY, + mode: Clutter.AnimationMode.EASE_OUT_QUINT + }); + } + shellWorkspaceLaunch(params) { params = Params.parse(params, { workspace: -1, timestamp: 0 });